Most conventional application programs are menu-driven as opposed to being command-driven. Menu-driven applications provide a list of possible commands or options from which a user may choose, while command-driven applications require users to enter explicit commands. Thus, menu-driven applications are generally easier for the average user to learn than are command-driven applications. Menus are typically implemented as a list of textual or graphical choices (i.e., menu items) from which a user can choose. Thus, menus allow a user to select a menu item, for example, by pointing to the item with a mouse and then clicking on the item. Examples of other methods of selecting menu items include highlighting an item and then hitting the ‘return’ key or ‘enter’ key, and pressing on a menu item through a touch-sensitive screen.
One particularly useful type of menu is a hierarchical menu. An example of a conventional hierarchical menu 100 is shown in FIG. 1. As shown in FIG. 1, hierarchical menus 100 typically present a parent menu 102 that has selectable menu items. The selection of each menu item normally causes another menu, or submenu 104 to be displayed next to the currently displayed menu. A submenu 104 has additional menu choices that are related to the selected parent menu item which results in the display of the submenu. The depth of a hierarchical menu can extend in this manner to many levels of submenus.
The example menu shown in FIG. 1 illustrates how conventional hierarchical menus 100 generally lay out from left to right across a display screen as menu choices are selected. This menu format provides various advantages such as retaining previous and current menus on the display screen at the same time. This provides a historical menu map as menu selections are made and their corresponding submenus are displayed across the screen. Users can therefore review previous menu selections that have been made while progressing to the most recently displayed menu, making it easier to move between different menu items and different menu levels.
Although such hierarchical menus provide useful advantages, there are scenarios in which their use is impracticable. One such scenario is when hierarchical menus are used on devices having small display screens. The problems presented when attempting to implement conventional hierarchical menus on small-screen devices have generally discouraged the use of hierarchical menus with such devices. FIG. 2 illustrates an example of how the hierarchical menu 100 of FIG. 1 might appear on the display screen of a small-screen device.
As indicated above, hierarchical menus generally lay out across the display screen from left to right. On small-screen devices where the room on the screen is not wide enough to accommodate all of the menus, the menus lay out across the screen in both directions, from left to right and back again. In this scenario, the menus typically begin to overlap one another, creating various problems. One problem is that the overlapping menus can be confusing to the user, as FIG. 2 is intended to illustrate. Overlapping menus can make it difficult for a user to discern previous menu selections which can, in turn, make it difficult to determine how to return to previous menus to make different menu selections. Thus, one of the intended benefits of a hierarchical menu can be undermined when the hierarchical menu is implemented on a small-screen device.
Overlapping menus can also create problems with small-screen devices (and other devices) that employ pen-based or stylus-based touch-sensitive screens. With such devices, it is often difficult to maintain contact continuity between menus on the screen when the menus are overlapping. In other words, it is easy to move off of menus with small-screen, touch-based devices. If continuity is lost when moving from one menu to another, menus will often disappear from the screen, causing the user to have to go back and reactivate the menu from a prior menu. This problem becomes worse when using pen-based devices that “track”. “Tracking” is where a cursor on the screen follows (tracks) the movement of the pen as the pen moves over the screen even though the pen is not touching the screen. Tracking is lost if the pen is pulled too far away from the screen. Thus, pen-based devices that “track” tend to lose more menus when hierarchical menus are employed.
Accordingly, as the demand for small-screen devices capable of running increasingly complex applications continues to grow, the need exists for a way to implement hierarchical menus that overcomes various disadvantages with conventional hierarchical menus.